<?php

/**
* Controlleur par défaut
*/
class MainController extends Controller
{

  /**
   * Charge les listes d'infos à la construction
   */
  function __construct()
  {
    parent::__construct();
    array_push($this->styles, 'asset/css/app.css');
    array_push($this->styles, 'http://fonts.googleapis.com/css?family=Pirata+One');
    array_push($this->styles, 'http://fonts.googleapis.com/css?family=Raleway');
    array_push($this->styles, 'http://fonts.googleapis.com/css?family=Lobster');
  }

  /**
   * Méthode appellé lorsque la page /?action=index est lancée
   */
  function indexAction()
  {
    // Ajout de deux styles à la page
    array_push($this->styles, 'asset/css/tileStyle.css', 'asset/css/index.css');

    // Modifiacation du titre
    $this->title = "Accueil";

    // Récupération des listes des relations
    $degres = DegreFermentation::getList(Config::$urlFermentations);
    $types = TypeBiere::getList(Config::$urlTypes);
    $pays = Pays::getList(Config::$urlPays);

    // Récupération des bières
    $bieres = Biere::GetList(Config::$urlBieres, array( 'degres' => $degres, 'types' => $types, 'pays' => $pays), array(), false);

    // Mélange de la liste
    shuffle($bieres);

    // Liste de 10 bières
    $bieres = array_slice($bieres, 0, 9);

    // Appel de la vue
    include "app/views/beers/index.phtml";
  }

 
  /**
   * Méthode appellé lorsque la page /?action=recherche est lancée
   */
  function rechercheAction()
  {
    $this->title = "Recherche";

    // Ajout des styles à la page
    array_push($this->styles, 'asset/css/recherche.css');

    // Paramètres de recherche
    $params = array(
      'degre'     => isset($_GET['degre']) && $_GET['degre'] != "" ? $_GET['degre'] : null,
      'type'      => isset($_GET['type']) && $_GET['type'] != "" ? $_GET['type'] : null,
      'pays'      => isset($_GET['pays']) && $_GET['pays'] != "" ? $_GET['pays'] : null,
      'chaine'    => isset($_GET['chaine']) && $_GET['chaine'] != "" ? $_GET['chaine'] : null,
      'page'      => (isset($_GET['page']) && intval($_GET['page']) > 0 ? $_GET['page'] : 1) - 1,
      'nbParPage' => isset($_GET['nbParPage']) && intval($_GET['nbParPage']) > 0 ? $_GET['nbParPage'] : 30,
    );

    // Récupération des listes des relations
    $degres = DegreFermentation::getList(Config::$urlFermentations);
    $types = TypeBiere::getList(Config::$urlTypes);
    $pays = Pays::getList(Config::$urlPays);

    // Récupération des bieres avec la paginations
    $liste = Biere::getListWithPagination(Config::$urlBieres, array( 'degres' => $degres, 'types' => $types, 'pays' => $pays), $params);
    $pagination = $liste['pagination'];
    $bieres = $liste['liste'];

    // Appel de la vue
    include "app/views/beers/recherche.phtml";
  }

  /**
   * Méthode appellé lorsque la page /?action=detail est lancée
   */
  function detailAction()
  {
    // Ajout des styles à la page
    array_push($this->styles, 'asset/css/detail.css');

    $idBiere = $_GET['idBiere'];

    // Récupération des listes des relations
    $degres = DegreFermentation::getList(Config::$urlFermentations);
    $types = TypeBiere::getList(Config::$urlTypes);
    $pays = Pays::getList(Config::$urlPays);

    // Récupération de la biere $idBiere
    $bieres = Biere::getList(Config::$urlBieres, array('degres' => $degres, 'types' => $types, 'pays' => $pays));
    $biere = Biere::getByAttribute($bieres, 'no', $idBiere);

    // Si la bière existe, on donne son nom à la page
    if($biere)
      $this->title = $biere->get('nom');

    // Appel de la vue
    include "app/views/beers/details.phtml"; 
  }
}
?>